package Thread.Thread_Attributes;

public class Demo14 {
    public static void main(String[] args) throws InterruptedException {
        //主线程中创建t线程
        Thread t=new Thread(()->{
            for (int i = 0; i < 3; i++) {
                System.out.println("这是线程t");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
            System.out.println("线程t1 结束");
        });

        t.start();
        Thread.sleep(4000);//此时join并不会发生阻塞
        //join的目的是为了保证被等待的线程先执行完成
        //如果此时被等待的线程已经执行完毕，就没必要在进行等待线程的阻塞
        //让主线程等待t线程
        System.out.println("main 线程开始等待");
        t.join();
        //谁调用join谁就是被等待的线程！
        System.out.println("main 线程结束等待");

    }
}
